#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QPushButton* button = new QPushButton(this);
    button->setText("按钮");
    button->move(200, 200);

    // 如果在这里自己创建一些对象, lambda，使用lambda表达式捕获一定要注意对象生命周期，不要访问已经释放的变量

    //使用lambda表达式作为槽函数
    connect(button, &QPushButton::clicked, this, [=]() {
        qDebug() << "lambda 被执行了!";
        button->move(300, 300);
        this->move(100, 100);
    });//[]说明是lambda表达式（里面是变量捕获，帮助lambda表达式捕获外层作用域的变量），()里面是形参列表，{}是函数体
    //[button,this]表示只捕获button和this这两个变量，[=]表示捕获所有的外层变量
}

Widget::~Widget()
{
    delete ui;
}

